package com.frank.threadPool;

import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * @author 小石潭记
 * @date 2021/4/3 11:09
 * @Description: ${todo}
 */
public class SingleThreadPool {
    public static void main(String[] args) {
        // todo 任务太多太多 oom 内存溢出
        Executors.newSingleThreadExecutor();
        // corePoolSize：核心员工 maximumPoolSize - 非核心员工 当前核心员工就是1
        // maximumPoolSize：最大的线程数 1
        // 非核心员工：maximumPoolSize - corePoolSize = 0
        // 链式阻塞队列 大小int最大值
        new ThreadPoolExecutor(1, 1,
                0L, TimeUnit.MILLISECONDS,
                new LinkedBlockingQueue<Runnable>());
        // 100个task  1给核心员工   2-100存入链式阻塞队列中...
    }
}
